package com.reiuy.service.impl;

import com.reiuy.dao.GoodDao;
import com.reiuy.dao.UserDao;
import com.reiuy.entity.Good;
import com.reiuy.entity.User;
import com.reiuy.service.GoodService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;


@Service
public class GoodServiceImpl implements GoodService {
    @Resource
    private GoodDao goodDao;

    @Resource
    private UserDao userDao;

    /**
     * 发布新商品的方法需要两个参数,一个是用户填写的商品信息
     * 一个是用户自身的id,这个id来源于上传用户的session中的name
     * @param good 用户设定的商品参数
     * @param user 上传用户自身的参数id
     * @return 添加之后影响的条数
     */
    @Override
    public int setGood(Good good, User user) {
        User user_temp = new User();
        //使用一个临时的user对象存储传入的username
        user_temp.setUsername(user.getUsername());
        //并获得该username的id
        user_temp = userDao.selectUesrIdByname(user_temp);
        good.setSellerid(user_temp.getUserid());
        return goodDao.addGood(good);
    }

    @Override
    public List<Good> selectGoodbyId(User user) {
        User user_temp = new User();
        user_temp.setUsername(user.getUsername());
        user_temp = userDao.selectUesrIdByname(user_temp);
        //因为商品表中储存的是sellerid(userid)那么就需要一个携带userid数据的user对象作为参数
        //user被传入的user显然不具有这个属性
        //故需要一个临时的变量通过selectUserIdByname方法来携带userid参数进入dao
        return goodDao.selectuserGood(user_temp);
    }


    //删除上传的商品
    @Override
    public int deleteGood(Good good) {
        return goodDao.deleteGoodById(good);
    }

    //查询所有的商品便于展示
    @Override
    public List<Good> selectAllgoods() {
        System.out.println(goodDao.selectAll());
        return goodDao.selectAll();
    }
}

